solving complex equations